package com.sq.subject.domain.service;

import com.sq.subject.domain.bo.CategoryAndLabelBO;
import com.sq.subject.domain.bo.PrimaryCategoryBO;
import com.sq.subject.domain.bo.SubjectCategoryBO;
import com.sq.subject.infra.basic.entity.SubjectCategory;

import java.util.List;
import java.util.concurrent.ExecutionException;

/**
 * @author quan
 */
public interface SubjectCategoryDomainService {
    void add(SubjectCategoryBO subjectCategoryBO);

    void update(SubjectCategoryBO subjectCategoryBO);

    List<PrimaryCategoryBO> querySubjectPrimaryCategoryCategory();


    List<SubjectCategoryBO> queryCategoryByPrimary(SubjectCategoryBO subjectCategoryBO);

    /**
     * 查询分类及其下面的标签
     */
    List<CategoryAndLabelBO> queryCategoryAndLabel(SubjectCategoryBO subjectCategoryBO) throws ExecutionException, InterruptedException;

    void delete(SubjectCategoryBO subjectCategoryBO);
}
